package com.ysh.xiaomi.web.servelt;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ysh.xiaomi.pojo.TbGoodsType;
import com.ysh.xiaomi.service.GoodTypeService;
import com.ysh.xiaomi.service.impl.GoodTypeServiceImpl;
import com.ysh.xiaomi.utils.StringConstans;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 袁胜虎 on 2022/8/17 11:24
 */
public class TypeServlet {
    GoodTypeService goodTypeService = new GoodTypeServiceImpl();
    private ObjectMapper objectMapper = new ObjectMapper();
    public String findAll(HttpServletRequest request, HttpServletResponse response){
        //我们的目标是查询所有的分类,然后转成json给客户端返回
        //我们的数据暂时只返回顶层的菜单,也就是level为1,同时还是没有删除的数据,所以也就是状态是1的
//        List<TbGoodsType> goodsTypeList = goodTypeService.findAllFirstLevelType();
        //我们的数据现在提前保存到了context中,所以在这里可以直接从context中获取
        List<TbGoodsType> goodsTypeList = (List<TbGoodsType>) request.getServletContext().getAttribute("goodTypes");
        String json =null;
        try {
            //通过jackson转成json格式的数据
           json = objectMapper.writeValueAsString(goodsTypeList);
            //设置响应正文的类型
            response.setContentType("application/json;charset=utf-8");
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return json;
    }


    public String add(HttpServletRequest request,HttpServletResponse response){
        String name = request.getParameter("name");
        String parent = request.getParameter("parent");
        TbGoodsType tbGoodsType = new TbGoodsType();
            tbGoodsType.setName(name);


// 设置数据
        int i = goodTypeService.addType(tbGoodsType);
        //缓存中的数据是不对的,需要更新,获取到缓存中的集合,然后将数据添加到集合
        List<TbGoodsType> goodTypesList = (List<TbGoodsType>) request.getServletContext().getAttribute("goodTypes");
        goodTypesList.add(tbGoodsType);

        return StringConstans.REDIRECT+"/admin/showGoodsType.jsp";
    }
}
